<?php
class Osoby_Controller extends Controller
{
        public $uzytkownik,$projekt,$paginacja;
        protected function url()
        {
            $this['url']=url::base().'index.php/';
            $this['plik']=url::base();
        }
	public function __construct()
	{
		parent::__construct();
                $this->session=new Session();
                $this->uzytkownik=new Uzytkownik_Model();
                $this->projekt=new Projekt_Model();
                if ($this->session->get('linki'))
                    $this['linki']=$this->session->get('linki');
        }
        public function liczba_wierszypp()
        {
            $this->session->set('ilosc',$_POST['ilosc']);
            echo $this->session->get('ilosc');
        }
        public function usuwanie($opcja)
        {
            switch($opcja)
            {
                case 'usuwanie_dostawcow':
                    if(!empty($_POST['check']))
                    {
                    $dostawca=new Dostawca_Model();/*
                    foreach($_POST['check'] as $wartosc)
                    {
                        $indeksy=explode('|',$wartosc);
                        $dostawca->zmien_status_dostawcy($indeksy[0]);


                    }*/
                    foreach ($this->input->post('check') as $wartosc)
                            {
                            $dane=explode('|',$wartosc);
                            //var_dump($dane);
                            $this->dostawcy->set_nr_wniosku($dane[0]);
                            $this->dostawcy->set_id($dane[0]);
                            $this->dostawcy->set_idprojektu($this->session->get('id_nowy_wniosek'));
                            $this->dostawcy->usun_osobe_z_projektu('d');
                            }
                    $this['informacja']='Usunięto dostawcę z wniosku.';
                    }
                    break;
                case 'o':
                    //usuwanie osob
                    if(!empty($_GET['check']))
                    {
                    foreach($_GET['check'] as $wartosc)
                    {
                        $this->uzytkownik->set_id($wartosc);
                        $this->uzytkownik->zmien_status_osoby();
                    }
                    }
                    break;
                case 'p':
                    //usuwanie projektow
                    foreach($this->input->post('check') as $wartosc)
                    {
                        $this->projekt->set_id($wartosc);
                        $this->projekt->zmien_status_na_usuniety();
                    }
                    break;
                case 'w':
                    //usuwanie wnioskow
                    if(!empty($_POST['check']))
                    {
                    $wniosek=new Wniosek_Model();
                    foreach($this->input->post('check') as $wartosc)
                    {
                        $wniosek->set_id_user_wniosku($wartosc);
                        $wniosek->zmien_status_na_usuniety();
                    }
                    }
                    break;
            }
        }
       public function spis_alfabetyczny($parametr=null)
        {
           switch($parametr)
           {
               case 'usun_osoby':
                   $this->usuwanie('o');
                   break;
           }
           $this->url();
           $this['produkt']='1';
           if($this->session->get('ilosc')){
               $liczba_rekordow=$this->session->get('ilosc');
           }
           else
               $liczba_rekordow=10;
           
           $wyszukaj='';

           
           if (isset($_GET['wyszukaj']))
           {
               $iks='';
               $wyszukaj=trim($_GET['wyszukaj']);$zmienna=$wyszukaj;
               $this['wyszukaj']=$wyszukaj;
               if(preg_match( '/^((([A-Z]|[ĄĘĆŃŹŻÓŁŚ]){1}([a-z]+))){1,2}$/', trim($_GET['wyszukaj']),$iks)==1)
                       //if(preg_match( '/^(((([A-Z]|[ĄĘĆŃŹŻÓŁŚ]){1}([a-z])+){1,2})|(([a-z]|[0-9])+)@(([a-z]|[0-9])+)(.){1}[a-z]{2})/', trim($_GET['wyszukaj']),$iks)==1)
               {
                   $wyszukaj=$iks;
               }
           }
            $this->_paginacja(count($this->uzytkownik->pobierz_wszystkie_osoby_alfabetycznie(null,$wyszukaj)),$liczba_rekordow,"spis_alfabetyczny");
            
           $tablica_osob=$this->uzytkownik->pobierz_wszystkie_osoby_alfabetycznie($this->paginacja->sql_limit(),$wyszukaj);
           $this['ilosc']=$liczba_rekordow;
           $this['poczatek']=$this->paginacja->current_first_item();
           $this['osoby']=$tablica_osob;
           $this['pp']=$this->paginacja->render();
           echo $this->render('osoby/osoby.html');
        }
        public function dodaj_osobe($parametr=null)
        {
            $this->url();
            $this['produkt']='2';
            $this['sciezka_do_pliku_xls']=url::base().'public/_formularz_do_importu_osob.xls';
            $this['opcja']='dodaj_osobe_formularz_osoby';
            $this['opcja_xls']='import_xls_osoby';
            require_once APPPATH."forms/SRM/Gielda/Form/ImportDanych.php";
            require_once APPPATH."libraries/SRM/Data/Import/ExcelSchema.php";
            $this['opis2']=new SRM_Gielda_Form_ImportDanych();
            switch($parametr)
            {
                case 'xls_import':
                    if(isset($_POST['check']))
                    {
                    foreach($this->input->post('check') as $r)
                            $dane2=explode('|',$r);
                            $this->uzytkownik->set_nazwisko($dane2[0]);
                            $this->uzytkownik->set_imie($dane2[1]);
                            $this->uzytkownik->set_email($dane2[2]);
                            $id_=$this->uzytkownik->dodaj_z_palca($dane2[2],null);
                    $this['informacja']='Zaimportowano osobę/osoby do komisji wniosku.';
                    }
                    break;
                case 'xls':
                    $tablica=array(
			'nazwisko'  => 'lang_nazwa',
			'email' => 'lang_indeks');
                    $tablica2=array(
			'nazwisko'  => new sfValidatorString(array('required' => true)),
			'email' => new sfValidatorString(array('required' => true)));
                        $sciezka="forms/SRM/Gielda/Form/";
                        require_once APPPATH."libraries/SRM/Data/Import/ExcelSchema.php";
                        require_once APPPATH.$sciezka."ImportProdukt.php";
                        $this['opis']=new SRM_Gielda_Form_ImportProdukt();
                        $this['opis']->bind($this->input->post(),$_FILES);
                    if ($this['opis']->isValid())
                        {
                        $plik=$this['opis']->getValue('plik');
                        $czytnik_xls = new SRM_Data_Import_Produkty(false);
                        $czytnik_xls->setLabels($tablica);
                        $czytnik_xls->setSchema($tablica2);

                        $plik_ = './public/test/testowanie/_'.$plik->getOriginalName(); //deklaracja ścieżki do pliku
$test = file_exists($plik_); //sprawdzenie czy plik istnieje
    if (!$test) //jeżeli plik nie istnieje (zmienna $test=FALSE) 
    {
    //echo "Na serwerze nie ma pliku" .$plik_; //informacja o braku pliku na serwerze
    $plik->save('_'.$plik->getOriginalName());
    ///*
    if ($plik->isSaved())
                            {

                            $produkty = $czytnik_xls->process('./public/test/testowanie/_'.$plik->getOriginalName());
                            //var_dump($produkty);
                            unset($produkty[0]);
                            //unlink('./public/test/testowanie/_'.$plik->getOriginalName());
                            $this['plik_xls']=$produkty;
                            $this['link_dialog']='osoby/dialog_xls.html';
                            }
     //*
     //*/
    }
    else
    {
    //echo "Plik " .$plik_. " istnieje"; //informacja, że istnieje plik o nazwie $plik na serwerze
    unlink('./public/test/testowanie/_'.$plik->getOriginalName());
    //echo "Usunieto.";
    $plik->save('_'.$plik->getOriginalName());
    if ($plik->isSaved())
                            {

                            $produkty = $czytnik_xls->process('./public/test/testowanie/_'.$plik->getOriginalName());
                            //var_dump($produkty);
                            unset($produkty[0]);
                            //unlink('./public/test/testowanie/_'.$plik->getOriginalName());
                            $this['plik_xls']=$produkty;
                            $this['link_dialog']='osoby/dialog_xls.html';
                            }
    }
           

                        //$plik->save('_'.$plik->getOriginalName());
                        
                        }
                    break;
                case 'dodaj_osobe':
                    $dane=explode(' ',$this->input->post('nazwisko'));
                    if($_POST['email']=='' or (!preg_match('/^(([a-z]|[0-9])+)@(([a-z]|[0-9])+)(.){1}[a-z]{2}$/D', $_POST['email'])))
                        $this['informacja']="<font color='red'>Nie wprowadzono e-mail bądź adres jest nieprawidłowy.</font>";
                    else
                    {
                    if(count($dane)==2)
                        {
                        $this->uzytkownik->set_nazwisko($dane[1]);
                        $this->uzytkownik->set_imie($dane[0]);
                        $this->uzytkownik->set_email($this->input->post('email'));
                        $id=0;
                        $id=$this->uzytkownik->dodaj_z_palca('o',null);
                        $this->uzytkownik->set_id($id);
                        $this['informacja']='Dodano osobę.';
                        }
                        else
                        $this['informacja']="<font color='red'>Niepoprawna wartość w polu Imię i nazwisko.</font>";
                    }
                    break;
            	case 'dodaj':
            		//dodawanie osob z palca podawanych
            		$dane=explode(' ',$this->input->post('nazwisko'));
            		if(count($dane)==2)
            		{
            			$this->uzytkownik->set_nazwisko($dane[0]);
            			$this->uzytkownik->set_imie($dane[1]);
            			$this->uzytkownik->set_email($this->input->post('email'));
            			$this->uzytkownik->dodaj_z_palca($this->input->post('email'), null);
            			$this['informacja']='Dodano osob�.';
            		}
            		else 
	            		$this['informacja']='Nieprawid�owa warto�� w polu Imi� i nazwisko.';
            		break;
            }
            if($parametr==3 and $this->input->post('check'))
                {
                //dodawanie z UI z xls
                $this['informacja']='Dodano osoby.';
                $this->uzytkownik->importuj_z_xls($this->input->post(),$this->projekt->pobierz_nowe_id($this->session->get('zalogowany')),false);
                }
           
           echo $this->render('osoby/_dodaj_osobe.html');
        }
        /**
         *tworzenie stronnicowania
         * @param int $max maksymalna ilosc
         * @param int $ilosc_na_strone ilosc na strone
         * @param string $url  aktualna akcja
         */
        public function _paginacja(
                /*ssss*/
                $max,$ilosc_na_strone,$url){
            $this->paginacja = new Pagination_Core(array(
                                                 'uri_segment'=>$url,
                                                'total_items'=>$max,
                                                'style'=>'digg',
                                                'uri_segment' => 'page',
                                                'items_per_page'=>$ilosc_na_strone));
        }
      public function dodaj_osobe_z_palca2()
        {
            //zminimalizowanie przerw do jednej miedzy slowami
            $zmienna_tymcz=preg_replace('/\s\s+/', ' ', $_POST['nazwisko']);
            //zamiana tekstu na tablice
            $dane=explode(' ',$zmienna_tymcz);
            $this->uzytkownik->set_nazwisko($dane[0]);
            $this->uzytkownik->set_imie($dane[1]);
            $this->uzytkownik->set_email($_POST['email']);
            $id_osoby=$this->uzytkownik->dodaj_z_palca();
            echo $id_osoby;
            
        }

}